Rust 语言中国力量的崛起 | 2024 Rust 中文社区调研报告
在 2024 年 2 月 5 日,Rust 中文社区发布了一份包含 27 个问题的调研问卷,共收集到 257 份有效反馈样本。
我们衷心感谢 Rust 中文社区中这 257 位热心成员的宝贵反馈,这些样本数据为我们提供了一个难得的机会,深入了解 Rust 在中文社区的发展和应用现状。
接下来,我将详细展示本次调研的统计数据,并在最后对其进行分析与总结。
调研数据概览
Rust开发者的基本信息
总的来说,Rust中文社区的开发者主要集中在一线城市,以青壮年男性为主,教育程度普遍较高。
这反映了Rust语言在中国的使用现状和开发者群体特征。
1. 工作所在地
数据显示,北京是 Rust 中文社区成员的主要集中地,其次是上海和深圳。这三个一线城市的成员合计占总样本的46.4%。
其次是杭州、成都、南京和广州 。
而占总分布的「其他」则包含了一些未在选项里列出的二三四线城市,比如 天津、郑州、南宁、马鞍山、衡阳、石家庄、福州、吉林。
另外还有来自国外华人的反馈:加拿大、澳洲。
2. 年龄
调查结果显示,Rust 中文社区的主要参与者集中在26岁至35岁之间,这一年龄段占比超过一半。 比较有趣的是, 25 岁以下和 36岁 ~ 45 岁 这两个阶段的比例很接近。
46 ~ 55 岁这个群里还占了一小部分比例。
3. 性别
看得出来,男性参与者在 Rust 中文社区中占据绝对多数。当然 Rust 中文社区也有极小部分女性开发者。
4. 学历
整体以本科和硕士为主,占比超过 83 % 。
Rust 开发者职业特征与项目情况调查报告
总的来说,Rust 在软件和互联网行业得到广泛应用,主要由职场开发者使用。虽然大多数开发者的 Rust 经验相对较短(1~3 年),但 Rust 已在各类应用中得到实践,尤其是 Web 开发和网络服务领域。
从一个更广义的角度来看,硬件设备、物联网基础设施、通信网络设备、电子消费品,多少都会设计 Rust 嵌入式开发,整体占比可以达到 32% 左右。这代表 Rust 嵌入式有一定的应用潜力。
Rust 高校教材也开始有一定占比,这代表 Rust 在高校中的教育已经开始了普及阶段。
另外,Rust 社区有很大的发展空间。鼓励更多开发者参与开源项目、分享经验和知识,可能会加速 Rust 的普及和发展。同时,高比例的潜在用户也预示着 Rust 可能在未来迎来更广泛的应用。
有相当比例的产品处于初创或发展阶段,表明 Rust 仍在快速发展和推广中。
1. 行业分布
计算机软件行业占主导地位,比例高达41.2%。 互联网行业紧随其后,占19.5%。 IT服务(11.3%)和金融/数字金融/区块链(5.1%)也是重要领域。 其他行业如网络安全、智能硬件、人工智能等也有一定比例。
2. 职场身份
绝大多数(74.3%)是职场开发者。 学生群体占比 14%,表明 Rust 在教育领域也有一定潜力。 独立开发者占 5.4%,反映出 Rust 在自由职业者中也有一定吸引力。 高校老师的比例较少,这反映出 Rust 在国内高校的普及处于初级阶段。
3. Rust 开发经验
近半数(47.5%)开发者有一年左右的Rust经验。 20.6% 的开发者有 1-3 年经验。 11.3% 的开发者有 3-5 年经验。 20.6% 的开发者可能有更长的经验或处于初学者阶段。
总体来说,有 80% 左右开发者应该已入门 Rust 。
这份数据对于企业招聘 Rust 职位应该有一定借鉴意义:招聘 Rust 经验 1 ~ 3 年左右为宜。
这也从侧面表明,Rust 在中国得到初步的普及是在 2020 年左右。
4. 开发产品类型(多选)
Web/桌面应用软件最为普遍,占52.5%。 云服务/SaaS(19.4%)、移动App(15.6%)和硬件设备(13.1%)也是重要应用领域。 人工智能/大型应用程序(12.5%)和操作系统(11.3%)显示Rust在复杂系统中的应用。
5. 产品成熟度 与 Rust在产品中的应用
报告中 43.2% 的产品处于初创阶段(研发或测试中)。 报告中 22.2% 的产品已发展到市场阶段但份额尚未稳定。 报告中 23.7% 的产品已达到成熟阶段,市场份额稳定。
其中,
Web/网络相关服务是 Rust 最主要的应用领域,占 20.6%。 跨平台/GUI开发也是重要应用,占 8.6%。 区块链(5.8%)和科学计算/AI/大模型基础设施(5.4%)显示 Rust 在新兴技术领域的应用。 值得注意的是,33.5% 的受访者表示有意向使用 Rust,但尚未实际应用,这反映出 Rust 有较大的潜在市场。
6. 开源社区贡献与 Rust 在开源项目中的应用
大多数Rust开发者(68.9%)尚未为开源社区做出贡献。 23% 的开发者进行了代码贡献,这是最主要的贡献形式。 少数开发者贡献了文档(3.9%)或进行了项目/代码审核(1.6%)。 这表明 Rust 社区还有很大的参与空间,鼓励更多开发者参与开源项目可能有助于推动 Rust 的发展。
33.5% 的开发者在自己的开源项目中使用了 Rust。 63.8% 的开发者尚未在自己的开源项目中使用 Rust。 这一数据与社区贡献的数据相呼应,表明虽然有三分之一的开发者在开源项目中使用 Rust,但仍有很大的增长潜力。
Rust开发者编程经验、社区参与度及学习情况调查报告
整体来说,大多数 Rust 开发者仍处于初级阶段,有较大的成长空间。 Rust社区参与度整体偏低,需要更多措施来提高开发者的积极性。开发者对 Rust 在多个领域的应用都表现出兴趣,特别是基础生态库、Web 开发、操作系统和 AI 大模型相关领域。
VS Code是Rust开发的主流工具,体现了现代IDE的重要性。Rust 的学习曲线对大多数开发者来说是可接受的,大部分人能在一年内入门。
这些数据也强调了 Rust 学习的多元化和实践导向。它们突显了社区参与、实际项目经验和高质量学习资源在 Rust 生态系统中的重要性。为了促进 Rust 的进一步普及,社区可能需要聚焦于提供更多实践机会、改进文档和教程质量,特别是在视频内容方面。
Rust 中文社区的开发者也有非常多元化的背景,主要来自 Python 、Java、 C 、 Cpp 、Go、JavaScript/TypeScript 等其他编程语言社区。
以上这些数据对于理解 Rust 社区的构成、制定教育策略和预测未来发展趋势都具有重要意义。
1. Rust 代码量
58% 的开发者写过的 Rust 代码不超过 1 万行,反映出大多数开发者仍处于初级阶段。 25.3% 的开发者写过 1-5 万行代码,表明有一定比例的开发者已经积累了较多实践经验。 只有 15.2% 的开发者写过 5 万行以上的代码,说明资深 Rust 开发者比例相对较小。
2. Rust 全球社区参与度
41.6% 的开发者偶尔参与社区活动。 41.2% 的开发者几乎不参与社区活动。 仅 16% 的开发者经常参与社区活动(如阅读、讨论、代码贡献等)。 这表明 Rust 社区参与度整体偏低,有很大提升空间。
3. 愿意参与的开源项目类型(多选)
Rust 基础生态库最受欢迎,42.4% 的开发者愿意参与。 Web框架 (37.7%) 和 WebAssembly (26.8%) 也是热门领域。 操作系统 (31.5%) 和 AI /大模型应用 (25.7%) 显示了 Rust 在系统级和前沿技术领域的吸引力。 数据显示开发者对多个领域都有兴趣,反映了 Rust 的广泛应用潜力。 Rust 语言和编译器方向也有 20.6% 的人感兴趣 移动端 GUI 也有 16% 的人愿意参与
Rust 语言是通用语言,应用面非常广,整体来说,各个领域的比例还是相对比较平衡。
4. 开发工具偏好
Visual Studio Code (VS Code) 是绝对主流,使用率高达 66.5%。 RustRover 是第二受欢迎的工具,使用率为 21%。 其他工具如 Vim、Emacs 等使用率较低,反映出现代 IDE 在Rust开发中的主导地位。 现代化的编辑器比如 Zed 和 Helix 也有一小部分比例。 其他编辑器,比如 IDEA、Sublime Text 4 也有人使用。
5. Rust入门时间
35.4% 的开发者在三个月内入门 Rust,表明 Rust 的学习曲线对一部分人来说相对平缓。 25.7% 的开发者用了3-6个月入门,16% 的人用了6个月到1年。 总体来看,77.4%的开发者在一年内完成了 Rust 的入门,显示出 Rust 的学习难度适中。
6. 有效的Rust学习方法(多选)
做项目是最受认可的学习方法,93.4% 的开发者认为有帮助。 阅读开源项目源码 (73.5%) 和查看文档 (71.2%) 也被大多数开发者认为有效。 63% 的开发者认为看书有帮助,表明传统学习方式仍然重要。 37.4% 的开发者认为看视频有帮助,相对较低,可能反映出 Rust 视频教程的质量或数量有待提高。
这些数据反映出了一些洞见:
实践是最有效的学习方法。绝大多数开发者认为通过实际项目来学习 Rust 是最有帮助的,这与Rust的实用性和性能优势相符。 开源社区在 Rust 学习中扮演重要角色。大多数开发者通过阅读开源项目源码来提升技能,这与 Rust 强调的代码质量的理念一致,只有代码质量高,才能从阅读源码中吸取更多知识。 文档的重要性突出。Rust 社区重视文档,这反映在大多数开发者认为查看文档是有效的学习方法。 传统学习方式仍然有价值。尽管实践和在线资源很重要,但近 2/3 的开发者仍认为看书是有帮助的,说明深入系统的学习仍然必要。 视频教程可能是一个发展机会。相对较少的开发者认为看视频有帮助,这可能意味着 Rust 社区在视频教程方面有提升空间。
Rust 开发者的编程背景(多选)
Python 是最常见的背景,44% 的Rust开发者之前使用过 Python。 Java紧随其后,占比 40.9%。 C语言 (39.3%) 和 C++(34.2%) 也是常见的背景语言。 TypeScript/JavaScript (32.3%) 和 Go(31.9%) 也有相当比例。 其他语言如 Kotlin(7.8%)、PHP(7%)、Swift(3.5%)、Ruby 和 Haskell(各2.3%)的比例较低。
这些数据提供了关于 Rust 开发者背景的重要洞察:
多样化的编程背景:Rust 吸引了来自各种编程语言背景的开发者,反映了其广泛的应用潜力和跨领域的吸引力。 系统编程语言的影响:C 和 C++ 的高占比表明许多 Rust 开发者有系统编程的背景,这与 Rust 作为系统编程语言的定位相符。 现代语言的流行:Python 和 Java 的高占比反映了这些语言在当前编程界的普及度,同时也暗示了 Rust 可能正在吸引这些语言的用户转移。 Web开发背景:TypeScript/JavaScript 的高占比表明 Web 开发者也对 Rust 产生了兴趣,可能是因为 WebAssembly 等技术的推动。 并发编程的关联:Go 语言使用者的高比例可能反映出对并发编程的兴趣,这是Rust 的强项之一。 函数式编程影响较小:Haskell 等纯函数式语言的低占比表明,虽然 Rust 借鉴了一些函数式编程概念,但主要还是吸引了命令式和面向对象编程背景的开发者。
Rust 中文社区参与度与发展期望调查报告
总的来说,大多数 Rust 中文社区成员处于较为被动的参与状态,主动组织和参与各类活动的比例相对较低。
各类活动,从本地聚会到国际交流,主要由少数活跃成员负责组织和支持。这可能导致社区发展的不均衡。虽然实际参与国际交流活动的比例不高,但社区成员普遍持支持态度,显示出对国际化的积极期望。
Rust在高校教育领域的推广力度还不够,这可能影响长期人才培养和语言普及。尽管当前积极参与度不高,但大多数成员表示支持各类活动,这为社区未来发展提供了良好的基础。
也许我们应该鼓励更多成员参与社区活动的组织和策划,分散社区运营压力。增加小型、低门槛的活动,提高成员的参与积极性。
另外,尽管学习曲线较陡,且他们喜欢 Rust 的理由各不相同,但许多人认为掌握 Rust 是值得的投资。
从 Rust 社区的用户反馈来看,大部分人还是希望通过社区来提供技术分享和项目实践机会来进一步帮助入门和进阶 Rust 。
1. 社区技术/议题发起与组织
79% 的受访者没有在社区中发起或组织过技术/议题活动。 7.8% 的人组织过线上讨论活动,5.8% 组织过线下聚会,4.3% 组织过线下技术交流活动。 这表明社区活动的组织者比例较低,大多数成员处于被动参与状态。
2. 大型技术沙龙/交流活动的组织
79% 的受访者未参与组织过大型活动。 12.5% 的人参与过这类活动,4.7% 赞助过,1.9% 成功协助组织过。 数据显示大型活动的组织和支持主要由少数活跃成员承担。
3. 国际技术交流会的参与
4. 高校 Rust 技能培训和比赛的支持
77.8% 的受访者没有参与过,但表示支持。 3.9% 的人参与过组织工作,3.1%参与过活动,0.4%主持过活动。 这反映出高校 Rust 技能培训和比赛的活动的社区参与度较低,但社区成员普遍持支持态度。
5. 有过 Rust 技术咨询/技术支持
87.2% 的受访者或其公司没有参与过 Rust 技术咨询和支持。 仅 10.1% 的人或其公司参与过这类活动。 这表明 Rust 在高校企业领域的推广还有很大的发展空间。
6. 为什么喜欢 Rust 语言
对 257 个喜欢 Rust 语言的理由进行归纳之后,得出下面几点:
安全性: 内存安全是最常被提及的特性,很多开发者认为这减少了bug和运行时错误。线程安全和并发安全也是吸引开发者的重要因素。 高性能:无GC(垃圾回收)的特性被多次提及,开发者认为这提高了运行效率。许多人将 Rust 视为 C++ 的现代化替代品,认为它在保证安全的同时不牺牲性能。 现代化的语言设计:开发者欣赏Rust的语法设计,认为它既优雅又强大。所有权系统、生命周期、零成本抽象等概念被认为是创新和有价值的。 强大的工具链和包管理:Cargo被频繁提到,开发者认为它使项目管理和依赖处理变得简单。编译器的友好错误信息受到广泛赞誉,被认为有助于学习和调试。 跨平台能力:能够轻松地进行跨平台开发是Rust的一个吸引点。WebAssembly支持被多次提及,特别是在前端开发领域。 广泛的应用范围:从系统级编程到Web开发,Rust的多功能性受到赞赏。 在区块链、AI、大数据等新兴领域的应用潜力也被提到。 学习体验和个人成长:许多开发者认为学习 Rust 有助于提升编程能力和对底层系统的理解。尽管学习曲线陡峭,但克服挑战带来的成就感被视为一种吸引力。 社区和生态系统:活跃的社区和不断增长的生态系统被视为Rust的优势。高质量的第三方库和良好的文档被多次提到。 未来前景:许多开发者表示看好Rust的未来,认为它代表了编程语言的发展方向。一些人提到学习Rust可以提升职业竞争力。 编码体验: 严格的编译时检查被认为能提高代码质量。类型系统的强大和表达能力受到赞赏。
7. 对 Rust 中文社区有哪些期望
基于用户反馈,共总结出4个主要观点:
社区活跃度:用户希望社区能够持续活跃,增加技术分享、项目实践和交流活动的频率和质量,提供一个良好的学习和交流平台。 技术分享:用户期望社区能够提供更多高质量的技术分享,包括文章、视频教程和实战案例,帮助他们深入理解Rust语言和最佳实践。 项目实践:用户希望社区能够组织和推广更多实际项目,尤其是新手友好的入门项目和开源项目,以便于他们学习和实践。 文档支持:用户期望社区能够提供更加完善的文档支持,包括中文文档的翻译、常见问题解决方案和API使用指南,以降低学习门槛。
趋势总结
近年来,Rust 编程语言在中国开发者社区中掀起了一股热潮。这门强调安全性和性能的现代化语言正吸引着越来越多的中国程序员。我们的调查显示,Rust 在中国的开发者群体主要是年轻的、受过高等教育的专业人士,他们大多集中在一线城市的互联网和软件行业。
尽管大多数中国 Rust 开发者的经验还只是一到三年,但他们对这门语言的未来充满信心。Rust 的应用范围正在迅速扩大,从 Web 开发到系统编程,再到新兴的人工智能和区块链领域。特别值得注意的是,Rust 在 WebAssembly 方面的应用显示出其在前端开发中的巨大潜力。
Rust 的成功在很大程度上归功于其出色的工具链,尤其是 Cargo 包管理器,它大大简化了开发流程。Visual Studio Code 作为首选的开发环境,进一步提升了开发效率。开发者们普遍赞赏 Rust 的内存安全特性、高性能和现代语言设计,将其视为C++ 的理想替代品。
然而,Rust 在中国的发展也面临着挑战。尽管对语言本身评价很高,但社区参与度仍然较低。大多数开发者还没有积极参与社区活动或为开源项目做出贡献。这表明中国的 Rust 社区仍处于成长阶段,需要更多的推动力来促进交流和协作。
展望未来,中国的 Rust 开发者群体对社区发展抱有很高期望。他们渴望更多高质量的学习资源、实践项目机会和技术交流活动。完善的中文文档和降低入门门槛也被视为推动 Rust 在中国普及的关键因素。
总的来说,Rust 在中国展现出了强劲的增长势头和广阔的应用前景。随着社区的不断成熟和生态系统的完善,Rust 有望在中国的软件开发领域占据更加重要的地位。关键在于如何提高社区参与度,加强教育推广,并扩大在企业中的应用。如果这些挑战能够得到有效解决,Rust 无疑将成为中国下一代软件开发的重要力量。